package com.molichuxing.services.business.dto.response;

import com.molichuxing.framework.bean.RootBean;
import com.molichuxing.framework.dto.ResponseRootDto;
import com.molichuxing.services.property.CarAccidentCasualtyEnum;
import com.molichuxing.services.property.CarAccidentDieEnum;
import com.molichuxing.services.property.CarAccidentLiabilityTypeEnum;
import com.molichuxing.services.property.CarAccidentTypeEnum;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * <p>
 * 事故信息实体
 * </p>
 *
 * @author xuelin yi
 * @since 2019-09-04
 */
@Data
public class AccidentInfoDto extends ResponseRootDto {


    /**
     * 出险时间
     */
    private LocalDateTime accidentTime;

    /**
     * 责任认定书类型 （1：交通事故认定书，2：简易事故处理书，3：判决书，4：调解书，5：裁定书，6：裁决书）
     */
    private Integer type;

    /**
     * 文件相对路径 relative_path
     */
    private String relativePath;

    /**
     * 出险地点-区id
     */
    private Integer regionId;

    /**
     * 出险地点-详细地址
     */
    private String accidentAddr;

    /**
     * 事故类型（1:单方事故，2：双方事故，3：多方事故，4：停放受损，5：车辆盗抢，6：车辆自燃，7：车辆涉水，8：重大自然灾害）
     */
    private Integer accidentType;

    /**
     * 事故类型（1:单方事故，2：双方事故，3：多方事故，4：停放受损，5：车辆盗抢，6：车辆自燃，7：车辆涉水，8：重大自然灾害）
     */
    private String accidentTypeStr;

    /**
     * 责任类型（0：无责，1：全责，2：主责，3：同责，4：次责）
     */
    private Integer liabilityType;

    /**
     * 责任类型（0：无责，1：全责，2：主责，3：同责，4：次责）
     */
    private String liabilityTypeStr;

    /**
     * 是否有人伤（0：无人伤，1：有人伤）
     */
    private Boolean isCasualty;

    /**
     * 是否有人伤（0：无人伤，1：有人伤）
     */
    private String isCasualtyStr;

    /**
     * 事故时间
     */
    private LocalDateTime reportTime;

    /**
     * 事故说明
     */
    private String explain;

    /**
     * 结案时间
     */
    private LocalDateTime caseTime;

    /**
     * 结案说明
     */
    private String caseExplain;

    /**
     * 是否有死亡（0：无死亡，1：有死亡）
     */
    private Boolean isDie;

    /**
     * 是否有死亡（0：无死亡，1：有死亡）
     */
    private String isDieStr;

    public void setIsDie(Boolean die) {
       this.isDie = die;
        if(die) {
            this.isDieStr = CarAccidentDieEnum.YES.getName();
        }else{
            this.isDieStr = CarAccidentDieEnum.NO.getName();
        }
    }

    public void setAccidentType(Integer accidentType) {
        this.accidentType = accidentType;
        this.accidentTypeStr = CarAccidentTypeEnum.getName(accidentType);
    }

    public void setLiabilityType(Integer liabilityType) {
        this.liabilityType = liabilityType;
        this.liabilityTypeStr = CarAccidentLiabilityTypeEnum.getName(liabilityType);
    }

    public void setIsCasualty(Boolean casualty) {
        this.isCasualty = casualty;
        if(isCasualty) {
            this.isCasualtyStr = CarAccidentCasualtyEnum.YES.getName();
        }else {
            this.isCasualtyStr = CarAccidentCasualtyEnum.NO.getName();
        }
    }
}
